package org.javaforever.cookieshop.utils;

import java.text.ParseException;
import java.text.SimpleDateFormat;

public class DateUtil {

    private static final SimpleDateFormat SIMPLE_DATE_FORMAT = new SimpleDateFormat("yyyy-MM-dd");
    private static final SimpleDateFormat SIMPLE_DATE_TIME_FORMAT = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    // 字符串转换为java.util.Date类型日期时间
    public static java.util.Date strDateToUtilDate(String strDate) {
        try {
            if (StringUtil.isBlank(strDate)) return null;
            else return SIMPLE_DATE_FORMAT.parse(strDate);
        } catch (ParseException e) {
            e.printStackTrace();
        }
        return null;
    }
    
    // 字符串转换为java.util.Date类型日期时间
    public static java.util.Date strDateTimeToUtilDateTime(String strDate) {
            try {
                if (StringUtil.isBlank(strDate)) return null;
                else return SIMPLE_DATE_TIME_FORMAT.parse(strDate);
            } catch (ParseException e) {
                e.printStackTrace();
            }
            return null;
        }

    // java.util.Date类型日期时间转换为java.sql.Date类型日期时间
    public static java.sql.Date utilDateToSqlDate(java.util.Date date) {
        // long date.getTime():返回自 1970 年 1 月 1 日 00:00:00 GMT以来此 Date对象表示的毫秒数
        if (date != null) {
            return new java.sql.Date(date.getTime());
        } else {
            return null;
        }
    }
    
    // java.util.Date类型日期时间转换为java.sql.Date类型日期时间
    public static java.util.Date sqlDateToUtilDate(java.sql.Date date) {
        if (date != null) {
            // long date.getTime():返回自 1970 年 1 月 1 日 00:00:00 GMT以来此 Date对象表示的毫秒数
            return new java.util.Date(date.getTime());
        } else {
            return null;
        }
    }
        
    // java.util.Date类转换为字符串类型
    public static String utilDateToString(java.util.Date date) {
        return SIMPLE_DATE_FORMAT.format(date);
    }
    
    // java.util.Date类转换为字符串类型
    public static String utilDateTimeToString(java.util.Date date) {
        return SIMPLE_DATE_TIME_FORMAT.format(date);
    }
}
